<?php
/**
 * Created by PhpStorm.
 * User: edmmss
 * Date: 2019/1/10
 * Time: 09:09
 */

namespace app\modules\state\controller;

use app\modules\state\ContextOrder;
use app\modules\state\CreateOrder;
use yii\web\Controller;

class DefaultController extends Controller
{
    /**
     * 状态模式示例
     * 状态模式可以基于一个对象的同种事务而封装出不同的行为。
     * 它提供一种简洁的方式使得对象在运行时可以改变自身行为，而不必借助单一庞大的条件判断语句。
     *
     * @date   2019/1/14
     * @author edmmss
     * @return bool
     */
    public function actionIndex()
    {
        $order = new CreateOrder();
        $contextOrder = new ContextOrder();
        $contextOrder->setState($order);

        $contextOrder->done();
        var_dump($contextOrder->getState());

        $contextOrder->done();
        var_dump($contextOrder->getState());

        $contextOrder->done();
        var_dump($contextOrder->getState());

        return true;
    }
}